lexer grammar Hello;

// 关键字
If:     'If';
Int:    'int';

// 字面量
IntLiteral:     [0-9]+;
StringLiteral:  '"'.*? '"';     // 字符串字面量

// 操作符
AssignmentOP:   '=';
RelationalOP:   '>' | '>=' | '<' | '<=';
Star:           '*';
Plus:           '+';
Sharp:          '#';
SemiColon:      ';';
Dot:            '.';
Comm:           ',';
LeftBracket:    '[';        // 方括号
RightBracket:   ']';
LeftBrace:      '{';        // 花括号
RightBrace:     '}';
LeftParen:      '(';        // 圆括号
RightParen:     ')';

// 标识符
Id:             [a-zA-Z_] ([a-zA-Z_] | [0-9])*;

// 空白字符，抛弃
WhiteSpace:     [ \t]+ -> skip;
Newline:        ( '\r' '\n' ? | '\n') -> skip;